The invention relates to telephony systems, and more particularly, relates to graphical user interfaces and software architectures for telephony devices.
Today""s telephony devices are becoming increasingly more sophisticated. A driving force of this trend is the convergence of functionality typically found in computers with functionality found in conventional telephones. One significant example of the convergence of phones and computers is a class of devices called screen phones. Though the specific hardware configuration of these devices varies widely, they typically share common elements such as a screen display, hardware buttons, telephone line interface hardware and a processor. Despite the advanced features that many of these devices provide, there is still need for improvement in many areas.
First, some screen phones available today have a small text-based display, typically arranged in a matrix of characters, and hardware buttons around the screen that are associated with specific screen areas to create virtual or soft buttons. This allows new functions to be programmed in to the buttons over time, or as a result of navigating through menu choices with the buttons. Usability testing and research have shown that the mapping of a physical button and the on-screen text is often confusing and hard to follow.
Another problem is that traditional enhanced telephony services are difficult to use (such as call forwarding) because they require the user to remember arbitrary sequences of key-presses, and remember sequences of operations without explicit feedback (feedback tones or clicks).
An additional problem with the screen phone industry is the lack of an extendable, flexible software architecture that allows others to build a rich array of functions and application programs. Screen phones tend to be highly specialized devices constructed with special hardware and software to support a set of features. As such, they are difficult to customize or extend to support new features.
This lack of flexibility is particularly problematic in view of the lack of uniformity in the telephone networkxe2x80x94where infrastructure components vary from region to region, country to country, and service provider to service provider. Each area may provide Caller ID, but these areas may supply it using different technologies, or supply Call Forwarding, but use different access codes.
The problems associated with architectural flexibility extend beyond the challenges raised by differences in central office switching, hardware, and configuration. The underlying telecommunication network infrastructure is changing as well, and telephony devices must be adaptable to these infrastructures. For example, the telephone architecture should support choices between conventional infrastructures such as PSTN and ISDN. Looking to the future, the use of the Internet Protocol may become more commonplace as a telephone network infrastructure, and thus, there is a need to make telephony architectures readily adaptable to a variety of network infrastructures.
The invention provides a user interface and related telephony program architecture for telephony devices. While aspects of the invention are particularly well suited for telephones with screen displays (e.g., screen phones), they apply to other telephony devices as well such as modems, answering machines and personal digital assistants.
One aspect of the invention is a user interface (UI) feature of a telephony device, which exposes line management and call control features in a user interface element called a xe2x80x9ccall slip.xe2x80x9d This user interface includes a variety of features that are unique, whether used alone or in combination with other features.
The call slip UI element occupies a portion of the display screen of a telephony device. To convey telephone line state information, the call slip UI reacts to changes in telephone line state and displays line specific status information. The call slip UI is sometimes referred to as being xe2x80x9cstate-smartxe2x80x9d, meaning that it presents different user options and line status information based on the state of the telephone, such as ringing or idle. It also changes the user options that it presents in response to events that occur in those states.
In one implementation, the call slip has two modes: expanded mode and collapsed mode. In response to events where telephone line status is more critical to the user, the call slip UI element is displayed in an expanded state in the foreground of the screen. For example, it expands to the expanded state in response to phone line related user input or in response to telephone events. Conversely, in response to events where the line state is less critical, the call slip becomes less prominent relative to other screen elements on the display.
The call slip may be adapted to provide the user with information and user interface controls to control the phone based on the state of the telephone call. This feature prevents the user from having to remember how to initiate a variety of advanced phone features, and also makes the display less cluttered. For example, the call slip UI element can be adapted to expand, collapse, and change the information and control options that it provides in response to changes in device or telephone line state. As such, it displays context sensitive information relative to the state of the telephone line (e.g., what is happening on the telephone line during a call) and other software in the system (what other software components are installed and what other data is already available in the system).
In one implementation, the call slip is visible from all display screens (i.e., regardless of the application program that is currently running, the call slip remains at least partially visible), and there is a call slip user interface element for each phone line. However, this feature is not an absolute requirement.
The call slip is extensible so that it can be modified to display information and control options added by a third party. In particular, the call slip has plug in regions called xe2x80x9cpanesxe2x80x9d that display information for plug-in code modules. Call slips are implemented as part of a software platform that may be adapted to a variety of telephony devices and applications. In this platform, the software that controls the display of a call slip creates an instance of a call slip object for each call slip display element. The call slip object has a programming interface for receiving telephone line state changes and information, such as caller ID information, from programs that monitor the telephone line, called telephony monitoring applications.
The software platform includes default call slip objects and user interface controls that control the display of information and user options within a call slip. The system implementer may develop a call slip display element by selecting one or more default panes to include in a call slip, and by adding custom panes and user interface controls. In addition, the system implementer may select telephony monitoring applications provided in the software platform, or create custom monitoring applications. The telephony monitoring applications may communicate changes in telephone line state and telephone line information to the call slip, and its panes and user interface controls, via the programming interfaces of the call slip, and of the call slip panes and controls. A telephony monitoring application and a call slip control may also agree on a private interface for communicating events and information between them.
Another aspect of the call slip UI is that it may be updated dynamically and remotely. The call slip UI is dynamic in that it reacts in response to telephone company services (e.g., deluxe call waiting) and displays appropriate call information and control options in response. A related feature is the ability of a third party to control telephone features made available through the call slip UI from a remote location. For instance, a telephone company may download a new call slip control that enables the telephony device to access a new telephony feature such as a feature that allows the user to view caller ID information from an incoming call while another call is in progress on the same line.